Today, more and more systems are multi-domain, multi-application and multi-service (or multi-function). The problem is then posed of creating models for these systems resulting from the association of a set of use cases, so as to produce scenarios representative of anticipated situations implementing several applications and services of the system.
To illustrate the problem, current and future multimedia products will be considered. They aim to respond simultaneously to multiple functionalities according to various situations or scenarios of use: communicating at the same time as filming a small video sequence, receiving electronic mail (e-mail) during an MP3 music playback, browsing an Internet site while at the same time following GPS instructions, etc.
Each functionality corresponds to a use case. Each use case is satisfied by a set of services which work together: taking a photo involves image capture, adaptation of the image to the LCD display format, JPEG compression, flash memory backup. The description of the functional model responding to a use involves the description of the couplings between the services concerned, which includes the temporal behaviour of each service and communications between services.
Real use scenarios correspond to the composition of several use cases. Certain services are then shared: LCD display, backup memory, image capture, communication protocol, etc. The problem is then posed of describing the solution for the system which is capable of carrying out a large variety of scenarios. The model to be represented involves consideration of nearly all the possible couplings between services, which results in a true “spider web” of interconnections.
Furthermore, functional modelling is not sufficient for deciding upon production solutions. The choice and exploration of possible architectures also requires consideration of the components required as resources for executing the services: processor, memory, bus, store controller, etc. Furthermore, with the development of technologies for producing integrated systems tending towards the use of silicon arrays, these systems increasingly have an effective physical means of interconnecting the execution means via a distributed structure of interconnecting components (buses, bridges, routers, etc.). The architectural model capable of enabling analyses and evaluations thus becomes nearly impossible to obtain due to the complexity of the functional interconnections that are being produced via a distributed structure of physical interconnecting components.
A new degree of complexity also appears with configurable and even dynamically reconfigurable products. For example, a mobile terminal is remotely configured by the communication network so as to satisfy a particular temporary function, such as a bank transaction, or simply its adaptation to the closest means of communication (software-defined radio).
The current technique for describing functional models or behaviors includes considering each necessary service as a “box” (or functional/logical component) ensuring a behaviour with respect to its inputs-outputs. These boxes are coupled via functional communication links of the point-to-point or multipoint type.
The simulation of these models requires description of the behaviour of each of the services and description of the scenarios considered for analyses of the solutions. Due to the many potential interconnections between services, all of them must be expressed in the behaviour of the services.
Furthermore, the creation of an architectural model blending the behaviour of the application for a variety of use cases with the distributed topologies of the current or future platforms is a laborious and very time-consuming task. Furthermore, any modification of the application or the platform requires redoing a large portion of the modelling work. These difficulties seriously impede companies from investing in such developments of models, which means that the exploration of architectures does not occur and that, as a result, the performance levels of the architectural choices are only discovered very late in the development cycle, with a very significant risk of obtaining unsatisfactory malfunctions and constraints.
The major disadvantage of the aforesaid current technique is the significant amount of time and the high level of skill required for developing such models, due to the exponential growth in the work associated with the need to clearly express all potential communications.
A second resultant disadvantage is also the monolithic nature of the model. This means that the model contains all of the features in a highly interwoven manner: functional segmentation, mixing of the behaviors for processing and communication, temporal properties which result therefrom. Any change or new configuration of use makes it necessary to reconsider a large portion of the model.
A third disadvantage relates to the near impossibility of creating a complex multi-domain (and/or multi-application) model by integrating models, each developed for its domain. The technique of re-using and integrating models considered to be IPs (Intellectual Properties) is not viable.
The above disadvantages lead to the situation wherein the designers do not explore possible architectures for such systems, due to reasons of cost and a lack of time, and therefore rely more upon their experience and even their intuition in making architecture choices. This results in difficulties during the integration phase or even later during use of the product. Furthermore, neither do companies fund knowledge and expertise per domain, due to the impossibility of ensuring multi-domain integration thereof.